package br.com.rrf;

import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class ItemBD {

	private DBHelper helper;
	
	public ItemBD(Context contexto){
		helper = new DBHelper(contexto);
	}
	
	public void inserir(Item item){
		SQLiteDatabase db = helper.getWritableDatabase();
		
		ContentValues values = prepararParaInserir(item);
		
		db.insert("item", null, values);
		
		db.close();
	}
	
	private ContentValues prepararParaInserir(Item item) {
		ContentValues values = new ContentValues();
		values.put("pedidoId", item.getId());
		values.put("produtoId", item.getProduto().getId());
		values.put("quantidade", item.getQtd());
		return values;
	}
	
	public List<Item> listarItemsPedido(Pedido pedido) {
		List<Item> items = new ArrayList<Item>();
		
		SQLiteDatabase db = helper.getWritableDatabase();
				
		Cursor cursor = db.rawQuery("select * from Item where pedidoId = " + pedido.getId(), null);
		
		while(cursor.moveToNext()) {
			Item item = prepararItem(cursor);
			items.add(item);
		}
		
		cursor.close();
		
		db.close();
		
		return items;
		
	}
	
	private Item prepararItem(Cursor cursor) {
		Item item;
		Produto produto;
		long produtoID = cursor.getLong(0);
		long pedidoID = cursor.getLong(1);
		int quantidade = cursor.getInt(2);
		produto = listarProdutoPorID(produtoID);		
		item = new Item(pedidoID, quantidade, produto); 
		
		return  item;
	}
	
	public Produto listarProdutoPorID(long id) {
		Produto produto = new Produto(id);
		
		SQLiteDatabase db = helper.getWritableDatabase();
				
		Cursor cursor = db.rawQuery("select * from produto where _id = "+id, null);
		//produto = prepararProduto(cursor);
		while(cursor.moveToNext()) {
			produto = prepararProduto(cursor);
			//produtos.add(produto);
		}
		
		cursor.close();
		
		db.close();
		
		return produto;
	}
	
	private Produto prepararProduto(Cursor cursor) {
		long id = cursor.getLong(0);
		String nome = cursor.getString(1);
		double valor = cursor.getDouble(2);
		
		return new Produto(id, nome, valor);
	}
	
	
	
}
